/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controladores;

import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import negocio.Articulo;
import negocio.ArticuloVenta;
import negocio.ExcepcionPersistencia;
import negocio.Juego;
import negocio.Pelicula;
import negocio.Proveedor;
import negocio.Tarifa;
import persistencia.PersistenciaArticulo;
import persistencia.PersistenciaProveedor;
import persistencia.PersistenciaTarifa;

/**
 *
 * @author JAVA
 */
public class GestionArticulo {

    public static void altaJuego(int idproveedor, int idtarifa, String titulo, String soporte, String genero, int edadMinima, boolean venta) {
        try {
            Tarifa tarifa1 = Tarifa.obtenerTarifa(idtarifa);
            Proveedor proveedor1 = Proveedor.obtenerProveedor(idproveedor);
            Juego a1 = new Juego(new Date(), proveedor1, tarifa1, titulo, soporte, edadMinima, genero, venta);
            a1.altaJuego(a1);
            System.out.println("Juego insertado correctamente");
        } catch (ExcepcionPersistencia ex) {
            System.out.println(ex.toString());
        }
    }

    public static void altaPelicula(int idproveedor, int idtarifa, String titulo, String genero, String director, int ano, int duracion, String actores, int edadMinima, boolean venta) {
        try {
            Tarifa tarifa1 = Tarifa.obtenerTarifa(idtarifa);
            Proveedor proveedor1 = Proveedor.obtenerProveedor(idproveedor);
            Pelicula a1 = new Pelicula(new Date(), proveedor1, tarifa1, titulo, genero, ano, duracion, actores, edadMinima, director, venta);
            a1.altaPelicula(a1);
            System.out.println("Pelicula insertada correctamente");
        } catch (ExcepcionPersistencia ex) {
            Logger.getLogger(GestionArticulo.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public static void altaArtVenta(int idproveedor, int idtarifa, String nombre) {
        Tarifa tarifa1 = PersistenciaTarifa.obtenerTarifa(idtarifa);
        Proveedor proveedor1 = PersistenciaProveedor.obtenerProveedor(idproveedor);
        ArticuloVenta a1 = new ArticuloVenta(new Date(), nombre, proveedor1, tarifa1);

        if (PersistenciaArticulo.insertarArticuloVenta(a1) == 1) {
            System.out.println("Articulo insertado correctamente");
        } else {
            System.out.println("Articulo NO insertado");
        }
    }
    
    public static int mostrarPeliculas() {
        int i = Pelicula.mostrarPeliculas();
        return i;
    }

    public static int mostrarJuegos() {
        int i = Juego.mostrarJuegos();
        return i;
    }

    public static int mostrarArticulosSeVenden() {
        int i = ArticuloVenta.mostrarArticulosSeVenden();
        return i;
    }

    public static int mostrarArticuloVenta() {
        int i = ArticuloVenta.mostrarArticuloVenta();
        return i;
    }

    public static void borrarArticulo(int cod) {
        try {
            Articulo.borrarArticulo(cod);
            System.out.println("Articulo eliminado correctamente");
        } catch (ExcepcionPersistencia ex) {
            System.out.println(ex.toString());
        }
    }

    public static void modificarArticulo(int cod, String nombre, String valor) {
        try {
            Articulo.modificarArticulo(cod, nombre, valor);
            System.out.println("El articulo se ha modificado correctamente");
        } catch (ExcepcionPersistencia ex) {
            System.out.println(ex.toString());
        }
    }

    public static int comprobarGenero(String genero) {
        List<String> aGenero = PersistenciaArticulo.devolverGeneros();
        if (aGenero.contains(genero)) {
            return 1;
        } else {
            return 0;
        }
    }

    public static int comprobarSoporte(String soporte) {
        List<String> aSoporte = PersistenciaArticulo.devolverSoportes();
        if (aSoporte.contains(soporte)) {
            return 1;
        } else {
            return 0;
        }
    }

    public static int mostrarGeneros() {

        List<String> aGenero = PersistenciaArticulo.devolverGeneros();

        Iterator it = aGenero.iterator();
        System.out.println("\n ----------------------- \n   --- GENEROS ---   \n ----------------------- \n");
        while (it.hasNext()) {
            String g = (String) it.next();
            System.out.println(g);
        }

        return aGenero.size();
    }

    public static int mostrarSoportes() {

        List<String> aSoporte = PersistenciaArticulo.devolverSoportes();

        Iterator it = aSoporte.iterator();
        System.out.println("\n ----------------------- \n   --- SOPORTES ---   \n ----------------------- \n");
        while (it.hasNext()) {
            String s = (String) it.next();
            System.out.println(s);
        }

        return aSoporte.size();
    }

    public static void addGenero(String genero) {
        if (PersistenciaArticulo.insertarGenero(genero) == 1) {
            System.out.println("Genero almacenado correctamente");
        } else {
            System.out.println("Genero NO almacenado correctamente");
        }
    }

    public static void addSoporte(String soporte) {
        if (PersistenciaArticulo.insertarSoporte(soporte) == 1) {
            System.out.println("Soporte almacenado correctamente");
        } else {
            System.out.println("Soporte NO almacenado correctamente");
        }
    }

    public static void modificarGenero(String genero, String gener) {
        if (PersistenciaArticulo.modificarGenero(genero, gener) == 1) {
            System.out.println("Genero modificado correctamente");
        } else {
            System.out.println("Genero NO modificado correctamente");
        }
    }

    public static void modificarSoporte(String soporte, String soport) {
        if (PersistenciaArticulo.modificarSoporte(soporte, soport) == 1) {
            System.out.println("Soporte modificado correctamente");
        } else {
            System.out.println("Soporte NO modificado correctamente");
        }
    }
}
